package com.yao.guava_demo.optional;

import com.google.common.base.Optional;

public class Demo2 {
    public static void main(String[] args) {
        //Optional.fromNullable 允许传入的参数为null，当为null时返回absent（），否则返回对应实例的optional对象
        Optional<Integer> a=Optional.fromNullable(null);
        //Optional.of 不允许传入的参数为null 否则抛出异常
        Optional<Integer> b=Optional.of(5);
        Integer s = sum(a, b);
        System.out.println(s);
    }

    public static Integer sum(Optional<Integer> a,Optional<Integer> b){
        //optional.isPresent 检查optional是否包含一个非空实例
        System.out.println("a is present:"+a.isPresent());
        System.out.println("b is present:"+b.isPresent());
        //optional.or 返回包含的实例或者传入的默认值
        int c=a.or(10);
        //optional.get 返回包含的非空实例，必须存在，否则报异常
        int d=b.get();
        return c+d;
    }
}
